﻿namespace MetaProperties.Framework
{
    using System;

    /// <summary>
    /// Untyped event arguments for when a value changes.
    /// </summary>
    public abstract class ValueChangedEventArgs : EventArgs
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="ValueChangedEventArgs"/> class.
        /// </summary>
        protected ValueChangedEventArgs()
        {
        }

        /// <summary>
        /// Gets the untyped old value.
        /// </summary>
        /// <value>The untyped old value.</value>
        public abstract object UntypedOldValue
        {
            get;
        }

        /// <summary>
        /// Gets the untyped new value.
        /// </summary>
        /// <value>The untyped new value.</value>
        public abstract object UntypedNewValue
        {
            get;
        }
    }
}
